home *** CD-ROM | disk | FTP | other *** search
/ PC World Interactive 7 / PC World Interactive 7.iso / program / ctutor.exe / TEXT / CHAP02.TXT < prev    next >
Text File  |  1994-05-15  |  18KB  |  406 lines

  1.  
  2.  
  3.  
  4.                                                         Chapter 2
  5.                                              GETTING STARTED IN C
  6.  
  7.  
  8. YOUR FIRST C PROGRAM
  9. -----------------------------------------------------------------
  10. The best way to get started with C is to actu-    ===============
  11. ally study a program, so load the file named         TRIVIAL.C
  12. TRIVIAL.C and display it on the monitor.  You     ===============
  13. are looking at the simplest possible C program.  
  14. There is no way to simplify this program or to leave anything out.  
  15. Unfortunately, the program doesn't do anything.
  16.  
  17. The word main is very important, and must appear once, and only 
  18. once in every C program.  This is the point where execution is 
  19. begun when the program is run.  We will see later that this does 
  20. not have to be the first statement in the program but it must 
  21. exist as the entry point.  Following the main program name is a 
  22. pair of parentheses which are an indication to the compiler that 
  23. this is a function.  We will cover exactly what a function is in 
  24. due time.  For now, I suggest that you simply include the pair of 
  25. parentheses. 
  26.  
  27. The two curly brackets, properly called braces, are used to 
  28. define the limits of the program itself.  The actual program 
  29. statements go between the two braces and in this case, there are 
  30. no statements because the program does absolutely nothing.  You 
  31. can compile and run this program, but since it has no executable 
  32. statements, it does nothing.  Keep in mind, however, that it is a 
  33. valid C program.  When you compile this program, you may get a 
  34. warning depending on how your compiler is set up.  You can ignore 
  35. the warning and we will discuss it later in this tutorial.
  36.  
  37.  
  38. A PROGRAM THAT DOES SOMETHING
  39. -----------------------------------------------------------------
  40. For a much more interesting program, load the     ===============
  41. program named WRTSOME.C and display it on your       WRTSOME.C
  42. monitor.  It is the same as the previous          ===============
  43. program except that it has one executable 
  44. statement between the braces.  The executable statement is a call 
  45. to a function supplied as a part of your C library.  Once again, 
  46. we will not worry about what a function is, but only how to use 
  47. this one named printf().  In order to output text to the monitor, 
  48. the desired text is put within the function parentheses and 
  49. bounded by quotation marks.  The end result is that whatever is 
  50. included between the quotation marks will be displayed on the 
  51. monitor when the program is run. 
  52.  
  53. Notice the semi-colon at the end of the line.  C uses a semi-
  54. colon as a statement terminator, so the semi-colon is required as 
  55. a signal to the compiler that this line is complete.  This 
  56.  
  57.                                                          Page 2-1
  58.  
  59.                                  Chapter 2 - Getting Started in C
  60.  
  61. program is also executable, so you can compile and run it to see 
  62. if it does what you think it should.  It should cause the text 
  63. between the quotation marks to appear on the monitor.
  64.  
  65. You may get two warnings when you compile this program and each 
  66. of the remaining programs in this chapter.  All warnings in this 
  67. chapter can be ignored.
  68.  
  69.  
  70. ANOTHER PROGRAM WITH MORE OUTPUT
  71. -----------------------------------------------------------------
  72. Load the program WRTMORE.C and display it on      ===============
  73. your monitor for an example of more output           WRTMORE.C
  74. and another small but important concept.  You     ===============
  75. will see that there are four program statements 
  76. in this program, each one being a call to the function printf().  
  77. The top line will be executed first, then the next, and so on, 
  78. until the fourth line is complete.  The statements are executed 
  79. in order from top to bottom.
  80.  
  81. Notice the funny character near the end of the first line, namely 
  82. the backslash.  The backslash is used in the printf() statement 
  83. to indicate that a special control character is following.  In 
  84. this case, the "n" indicates that a newline is requested.  This 
  85. is an indication to return the cursor to the left side of the 
  86. monitor and move down one line.  It is commonly referred to as a 
  87. carriage return/line feed.  Any place within text that you 
  88. desire, you can put a newline character and start a new line.  
  89. You could even put it in the middle of a word and split the word 
  90. between two lines.  The C compiler considers the combination of 
  91. the backslash and letter n as one character.
  92.  
  93. A complete description of this program is now possible.  The 
  94. first printf() outputs a line of text and returns the carriage.  
  95. (Of course, there is no carriage, but the cursor is moved to the 
  96. next line on the monitor.  The terminology carries over from the 
  97. days of teletypes.)  The second printf() outputs a line but does 
  98. not return the carriage so that the third line is appended to the 
  99. end of the second, then followed by two carriage returns, 
  100. resulting in a blank line.  Finally the fourth printf() outputs a 
  101. line followed by a carriage return and the program is complete.
  102.  
  103. After compiling and executing WRTMORE.C, the following text 
  104. should be displayed on your monitor;
  105.  
  106.     This is a line of text to output.
  107.     And this is another line of text.
  108.  
  109.     This is a third line.
  110.  
  111. Compile and run this program to see if it gives you this output.  
  112. It would be a good idea at this time for you to experiment by 
  113. adding additional lines of printout to see if you understand how 
  114.  
  115.                                                          Page 2-2
  116.  
  117.                                  Chapter 2 - Getting Started in C
  118.  
  119. the statements really work.  Add a few carriage returns in the 
  120. middle of a line to prove to yourself that it works as stated, 
  121. then compile and execute the modified program.  The more you 
  122. modify and compile the example programs, the more you will learn 
  123. as you work your way through this tutorial.
  124.  
  125.  
  126. LET'S PRINT SOME NUMBERS
  127. -----------------------------------------------------------------
  128. Load the file named ONEINT.C and display it on   ================
  129. the monitor for our first example of how to          ONEINT.C
  130. work with data in a C program.  The entry point  ================
  131. main should be clear to you by now as well as 
  132. the beginning brace.  The first new thing we encounter is line 3 
  133. containing int index; which is used to define an integer variable 
  134. named index.  The word int is a keyword in C, and can not be used 
  135. for anything else.  It defines a variable that can store a value 
  136. in the range from -32768 to 32767 in most C compilers for 
  137. microcomputers.  The variable name, index, can be any name that 
  138. follows the rules for an identifier and is not one of the 
  139. keywords for C.  The final character on the line, the semi-colon, 
  140. is the statement terminator as discussed earlier.
  141.  
  142. Note that, even though we have defined a variable, we have not 
  143. yet assigned a value to it, so it contains an undefined value.  
  144. We will see in a later chapter that additional integers could 
  145. also be defined on the same line, but we will not complicate the 
  146. present situation. 
  147.  
  148. Observing the main body of the program, you will notice that 
  149. there are three statements that assign a value to the variable 
  150. index, but only one at a time.  The statement in line 5 assigns 
  151. the value of 13 to index, and its value is printed out by line 6.  
  152. (We will see how shortly.  Just trust me for the time being.)  
  153. Later, the value of 27 is assigned to index, and finally 10 is 
  154. assigned to it, each value being printed out.  It should be 
  155. intuitively clear that index is indeed a variable and can store 
  156. many different values but only one value at a time of course.
  157.  
  158. Please note that many times the words "printed out" are used to 
  159. mean "displayed on the monitor".  You will find that in many 
  160. cases experienced programmers take this liberty, probably due to 
  161. the printf() function being used for monitor display.
  162.  
  163.  
  164. HOW DO WE PRINT NUMBERS?
  165. -----------------------------------------------------------------
  166. To keep our promise, let's return to the printf() statements for 
  167. a definition of how they work.  Notice that they are all identical 
  168. and that they all begin just like the printf() statements we have 
  169. seen before.  The first difference occurs when we come to the % 
  170. character.  This is a special character that signals the output 
  171. routine to stop copying characters to the output and do something 
  172.  
  173.                                                          Page 2-3
  174.  
  175.                                  Chapter 2 - Getting Started in C
  176.  
  177. different, namely output the value of a variable. The % sign is 
  178. used to signal the output of many different types of variables, 
  179. but we will restrict ourselves to only one for this example.  The 
  180. character following the % sign is a d, which signals the output 
  181. routine to get a decimal value and output it.  Where the decimal 
  182. value comes from will be covered shortly.  After the d, we find 
  183. the familiar \n, which is a signal to return the video "carriage", 
  184. and the closing quotation mark.
  185.  
  186. All of the characters between the quotation marks define the 
  187. pattern of data to be output by this statement.  Following the 
  188. output pattern, there is a comma followed by the variable name 
  189. index.  This is where the printf() statement gets the decimal 
  190. value which it will output because of the %d we saw earlier.  
  191. We could add more %d output field descriptors anywhere within the 
  192. brackets and more variables following the description to cause 
  193. more data to be printed with one statement.  Keep in mind 
  194. however, that the number of field descriptors and the number of 
  195. variable definitions must be the same or the runtime system will 
  196. generate something we are not expecting.
  197.  
  198. Much more will be covered at a later time on all aspects of input 
  199. and output formatting.  A reasonably good grasp of these 
  200. fundamentals are necessary in order to understand the following 
  201. lessons.  It is not necessary to understand everything about 
  202. output formatting at this time, only a fair understanding of the 
  203. basics.
  204.  
  205. Compile and run ONEINT.C and observe the output.  Two programming 
  206. exercises in this chapter are based on this program.
  207.  
  208.  
  209. HOW DO WE ADD COMMENTS IN C?
  210. -----------------------------------------------------------------
  211. Load the file named COMMENTS.C and observe it    ================
  212. on your monitor for an example of how comments      COMMENTS.C
  213. can be added to a C program.  Comments are       ================
  214. added to make a program more readable to you 
  215. but represent nonsense to the compiler, so we must tell the 
  216. compiler to ignore the comments completely by bracketing them with 
  217. special characters.  The slash star combination is used in C for 
  218. comment delimiters, and are illustrated in the program at hand.  
  219. Please note that the program does not illustrate good commenting 
  220. practice, but is intended to illustrate where comments can go in 
  221. a program.  It is a very sloppy looking program.
  222.  
  223. The first slash star combination introduces the first comment and 
  224. the star slash at the end of the first line terminates this 
  225. comment.  Note that this comment is prior to the beginning of the 
  226. program illustrating that a comment can precede the program 
  227. itself.  Good programming practice would include a comment prior 
  228. to the program with a short introductory description of the 
  229.  
  230.  
  231.                                                          Page 2-4
  232.  
  233.                                  Chapter 2 - Getting Started in C
  234.  
  235. program.  The comment in line 3 is after the main program entry 
  236. point and prior to the opening brace for the program code itself.
  237.  
  238. The third comment starts after the first executable statement in 
  239. line 5 and continues for four lines.  This is perfectly legal 
  240. because a comment can continue for as many lines as desired until 
  241. it is terminated.  Note carefully that if anything were included 
  242. in the blank spaces to the left of the three continuation lines 
  243. of the comment, it would be part of the comment and would not be 
  244. compiled, but totally ignored by the compiler.  The last comment, 
  245. in line 11, is located following the completion of the program, 
  246. illustrating that comments can go nearly anywhere in a C program. 
  247.  
  248. Experiment with this program by adding comments in other places 
  249. to see what will happen.  Comment out one of the printf() 
  250. statements by putting comment delimiters both before and after it 
  251. and see that it does not get executed causing a line of printout.
  252.  
  253. Comments are very important in any programming language because 
  254. you will soon forget what you did and why you did it.  It will be 
  255. much easier to modify or fix a well commented program a year from 
  256. now than one with few or no comments.  You will very quickly 
  257. develop your own personal style of commenting.
  258.  
  259. Some C compilers will allow you to "nest" comments which can be 
  260. very handy if you need to "comment out" a section of code during 
  261. debugging.  Since nested comments are not a part of the ANSI-C 
  262. standard, none will be used in this tutorial.  Check the 
  263. documentation for your compiler to see if they are permitted 
  264. with your implementation of C.  Even though they may be allowed, 
  265. it is a good idea to refrain from their use, since they are 
  266. rarely used by experienced C programmers.
  267.  
  268.  
  269. A VERY USEFUL EXTENSION
  270. -----------------------------------------------------------------
  271. Load the program named CPPCOMS.C for an example   ===============
  272. program with a very useful extension to the C        CPPCOMS.C
  273. programming language in recent years.  Comments   ===============
  274. in C++, a language that was based on C, begin 
  275. with a double slash and continue to the end of the line.  Many 
  276. compiler writers are adding this comment style to their 
  277. compilers in addition to the slash-star delimiter defined already.  
  278.  
  279. Using the older style slash-star comment, it is fairly easy to 
  280. begin a comment, and forget to terminate it, inadvertently 
  281. commenting out a block of code.  In some circumstances, this can 
  282. be very difficult to track down, so the designer of C++ added the 
  283. single line comment.  If your compiler supports this style of 
  284. comment, you may choose to use it, but you must keep in mind that 
  285. if you ever want to use a different compiler that doesn't support 
  286. this extension, you may have a lot of code to modify.  Of course, 
  287. that assumes you add lots of comments to your code.
  288.  
  289.                                                          Page 2-5
  290.  
  291.                                  Chapter 2 - Getting Started in C
  292.  
  293. GOOD FORMATTING STYLE
  294. -----------------------------------------------------------------
  295. Load the file GOODFORM.C and observe it on your    ==============
  296. monitor.  It is an example of a well formatted       GOODFORM.C
  297. program.  Even though it is very short and         ==============
  298. therefore does very little, it is very easy to see 
  299. at a glance what it does.  With the experience you have already 
  300. gained in this tutorial, you should be able to very quickly grasp 
  301. the meaning of the program in it's entirety.  Your C compiler 
  302. ignores all extra spaces and all carriage returns giving you 
  303. considerable freedom in formatting your program.  Indenting and 
  304. adding spaces is entirely up to you and is a matter of personal 
  305. taste.  Compile and run the program to see if it does what you 
  306. expect it to do.
  307.  
  308. Now load and display the program UGLYFORM.C      ================
  309. and observe it.  How long will it take you to       UGLYFORM.C
  310. figure out what this program will do?  It        ================
  311. doesn't matter to the compiler which format 
  312. style you use, but it will matter to you when you try to debug 
  313. your program.  Compile this program and run it.  You may be 
  314. surprised to find that it is the same program as the last one, 
  315. except for the formatting.  Don't get too worried about format-
  316. ting style yet.  You will have plenty of time to develop a style 
  317. of your own as you learn the C language.  Be observant of styles 
  318. as you see C programs in magazines and books. 
  319.  
  320. This should pretty well cover the basic concepts of programming 
  321. in C, but as there are many other things to learn, we will forge 
  322. ahead to additional program structure.  It will definitely be to 
  323. your advantage to do the programming exercises at the end of each 
  324. chapter.  They are designed to augment your studies and teach you 
  325. to use your compiler.
  326.  
  327.  
  328. PROGRAMMING EXERCISES
  329. -----------------------------------------------------------------
  330. 1.   Write a program to display your name on the monitor.
  331.  
  332. 2.   Modify the program to display your address and phone number 
  333.      on separate lines by adding two additional printf() 
  334.      statements.
  335.  
  336. 3.   Remove line 5 from ONEINT.C by commenting it out, then 
  337.      compile and execute the resulting program to see the value 
  338.      of an uninitialized variable.  This can be any value within 
  339.      the allowable range.  If it happens to have the value of 
  340.      zero, that is only a coincidence, but then zero is probably 
  341.      the most probably value to be in an uninitialized variable 
  342.      because there are lots of zero values floating around in a 
  343.      computers memory.
  344.  
  345.  
  346.  
  347.                                                          Page 2-6
  348.  
  349.                                  Chapter 2 - Getting Started in C
  350.  
  351. 4.   Add the following two lines just prior to the closing brace 
  352.      of ONEINT.C to see what it does.  Study it long enough to 
  353.      completely understand the result.
  354.  
  355.      printf("Index is %d\n it still is %d\n it is %d", 
  356.                       index, index, index);
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.                                                          Page 2-7
  406.